//package com.luli.config.linuxData;
//
//import com.jcraft.jsch.Channel;
//import com.jcraft.jsch.ChannelExec;
//import com.jcraft.jsch.JSch;
//import com.jcraft.jsch.Session;
//
//import java.io.BufferedReader;
//import java.io.IOException;
//import java.io.InputStream;
//import java.io.InputStreamReader;
//
//public class LinuxServerStatusChecker {
//    public static boolean isServerNormal(String host, int port, String user, String password) {
//        try {
//            JSch jsch = new JSch();
//            Session session = jsch.getSession(user, host, port);
//            session.setPassword(password);
//            session.setConfig("StrictHostKeyChecking", "no");
//            session.connect();
//            // 检查网络连接，通过ping外部地址（以8.8.8.8为例）
//            Channel channel = session.openChannel("exec");
//            ((ChannelExec) channel).setCommand("ping -c 3 8.8.8.8");
//            channel.connect();
//            InputStream in = channel.getInputStream();
//            BufferedReader reader = new BufferedReader(new InputStreamReader(in));
//            String line;
//            boolean pingSuccess = false;
//            while ((line = reader.readLine()) != null) {
//                if (line.contains("3 packets transmitted, 3 received")) {
//                    pingSuccess = true;
//                }
//            }
//            channel.disconnect();
//            // 检查CPU使用率（通过top命令获取，简单判断使用率是否小于80%）
//            channel = session.openChannel("exec");
//            ((ChannelExec) channel).setCommand("top -bn1 | grep \"Cpu(s)\" | awk '{print $2 + $4}'");
//            channel.connect();
//            in = channel.getInputStream();
//            reader = new BufferedReader(new InputStreamReader(in));
//            line = reader.readLine();
//            double cpuUsage = Double.parseDouble(line);
//            channel.disconnect();
//            // 检查内存使用率（通过free命令获取，简单判断使用率是否小于90%）
//            channel = session.openChannel("exec");
//            ((ChannelExec) channel).setCommand("free -m | awk 'NR==2{printf \"%.2f\", ($3/$2)*100}'");
//            channel.connect();
//            in = channel.getInputStream();
//            reader = new BufferedReader(new InputStreamReader(in));
//            line = reader.readLine();
//            double memoryUsage = Double.parseDouble(line);
//            channel.disconnect();
//            session.disconnect();
//            return pingSuccess && cpuUsage < 80 && memoryUsage < 90;
//        } catch (Exception e) {
//            e.printStackTrace();
//            return false;
//        }
//    }
//
//
//    public static boolean pingLinuxServer(String host) {
//        try {
//            Process process = Runtime.getRuntime().exec("ping -c 4 " + host);
//            // -c 4表示发送4个ICMP回显请求，可根据实际需求调整数量
//            InputStream inputStream = process.getInputStream();
//            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
//            String line;
//            while ((line = reader.readLine()) != null) {
//                if (line.contains("4 packets transmitted, 4 received")) {
//                    // 如果输出中包含此内容，表示发送的4个ping包都有回应，服务器可达
//                    return true;
//                }
//            }
//            return false;
//        } catch (IOException e) {
//            e.printStackTrace();
//            return false;
//        }
//    }
//
//
//    public static void main(String[] args) {
//        String host = "192.168.175.135";
//        boolean isReachable = pingLinuxServer(host);
//        if (isReachable) {
//            System.out.println("Linux服务器可正常访问");
//        } else {
//            System.out.println("Linux服务器可能无法访问");
//        }
//    }
//
//}
